package com.ym.medical.service;

import com.ym.core.utils.tkmybatis.IBaseSV;
import com.ym.medical.domain.entity.CommentRecordEntity;
import com.ym.medical.domain.entity.LabelsEntity;
import com.ym.medical.domain.param.CommentRecordQueryParam;
import com.ym.medical.domain.param.CommentRecordUpdateParam;
import com.ym.medical.domain.param.EvalDoctorParam;
import com.ym.medical.domain.vo.CommentRecordListPcVO;
import com.ym.medical.domain.vo.HotPointVo;
import com.ym.medical.domain.vo.PhoneOrderCommentRecord;

import java.util.List;

/**
 * 评价记录Service接口
 *
 * @author ym
 * @date 2020-08-20
 */
public interface ICommentRecordSV extends IBaseSV<CommentRecordEntity> {

	/**
	 * 查询评价记录列表
	 *
	 * @param queryParam 评价记录 查询对象
	 * @return 评价记录集合
	 */
	List<CommentRecordListPcVO> selectListPC(CommentRecordQueryParam queryParam);


	/**
	 * 新增评价记录
	 *
	 * @param updateParam 评价记录 新增对象
	 * @return 结果
	 */
	Long insertPC(CommentRecordUpdateParam updateParam);

	/**
	 * 修改评价记录
	 *
	 * @param updateParam 评价记录 修改参数
	 * @return 结果
	 */
	int updateByIdPC(CommentRecordUpdateParam updateParam);

	/**
	 * 评价医生
	 * @param param
	 * @return
	 */
    boolean insertEvalDoctor(EvalDoctorParam param);
	/**
	 * 患者评价
	 * @param currId
	 * @param ioId
	 * @return
	 */
	PhoneOrderCommentRecord selectComment(Long currId, Long ioId);

	/**
	 * 医生给患者总结的，热度咨询标签
	 *
	 * @param doctorId
	 */
	List<LabelsEntity> hotLabels(Long doctorId);

	/**
	 * 热度咨询统计列表查询
	 *
	 * @param doctorId
	 * @return
	 */
	List<HotPointVo> hotLabelsOrders(Long doctorId, String labels);

	/**
	 * 根据标签查询患者的评价
	 *
	 * @param okay      满意度
	 * @param doctId
	 * @param tagStand
	 * @param tagCustom
	 * @return
	 */
	List<HotPointVo> selectCommentRecords(String okay, Long doctorId, Long[] tagStand, Long[] tagCustom);
}
